2023/12/232677字符
HTML5
新增标签
<header>头部</header>
<footer>底部</footer>
<nav>导航条</nav>
<aside>侧边栏</aside>
<article>引用文章</article>
<section>文档章节</section>
<input list="browwers">
<datalist id="browwers">下拉列表 自带搜索功能 必须与input标签配合 <!-- IE9以下不支持 -->
<option value="chrome">
<option value="firefox">
<option value="safari">
</datalist>
<video src="" controls="controls">视屏</video>
<audio src="" controls="controls">音频</audio>
<div contenteditable="true">objk</div> <!-- 内容可编辑 -->
<div draggable="true" class="drag" style="width: 100px; height:100px; background:red; position: absolute;"></div>
<!-- 拖拽(火狐有问题)a / img 标签 draggable 默认为 true -->
<div class="target" style="width:200px; height:200px; border:1px solid; position:absolute; left:300px;"></div>
<script>
// 元素拖拽事件
let drag = document.getElementsByClassName('drag')[0];
let target = document.getElementsByClassName('target')[0];
let beginX, beginY;
drag.ondragstart = (e) => {
console.log('拖拽开始');
beginX = e.clientX;
beginY = e.clientY;
e.dataTransfer.effectAllowed = 'link'; // 更改鼠标样式,兼容性极差
};
// drag.ondrag = () => console.log('拖拽中');
drag.ondragend = (e) => {
console.log('拖拽结束');
let x = e.clientX - beginX;
let y = e.clientY - beginY;
drag.style.left = x + drag.offsetLeft + 'px';
drag.style.top = y + drag.offsetTop + 'px';
}
target.ondragenter = () => console.log('进入'); // 鼠标进入触发
target.ondragover = (e) => {
console.log('移动'); // 鼠标进入触发
e.preventDefault(); // drop 事件无法触发,需要阻止默认事件
/* ondragover --> 回到原处 || 执行drop事件 */
}
target.ondragleave = () => console.log('离开'); // 鼠标进入触发
target.ondrop = (e) => {
e.dataTransfer.dropEffect = 'link';
console.log('放下');
}
</script>
<!--
<menu>定义命令的列表或菜单 目前所有主流浏览器都不支持
<input type="text">1
<input type="text">2
</menu>
-->
<!-- 废除属性:basefont/big/center/font/s/strike/tt/u -->
<!-- 不在使用 frame 框架,frameset/frame/noframes 只支持 iframe 框架 -->
<!-- 废除 applet/bgsound/blink/marquee 标签 -->
<!-- ruby 替代 rb / addr 替代 acronym / ul 替代 dir / pre 替代 listing -->